package org.biubiu0002.baiblog.core.service;

import com.baomidou.mybatisplus.extension.service.IService;
import org.biubiu0002.baiblog.common.utils.PageUtils;
import org.biubiu0002.baiblog.core.model.entity.FavorRecordEntity;

import java.util.List;
import java.util.Map;

/**
 * 收藏记录表
 *
 * @author biubiu0002
 * @email 1007918011@qq.com
 * @date 2022-05-06 00:50:37
 */
public interface FavorRecordService extends IService<FavorRecordEntity> {

    PageUtils queryPage(Map<String, Object> params);

    /**
     * 收藏分享
     * 需要入口处做参数判断 用户，分享必须存在
     * @param userUid 用户id
     * @param shareId 被收藏的资源id
     */
    void favorShare(String userUid, String shareId);

    /**
     * 取消收藏分享
     * @param userUid 用户id
     * @param shareId 被收藏的资源id
     */
    void unFavorShare(String userUid,String shareId);

    /**
     * 把收藏数据从db加载到redis
     * @param userUid 用户uid
     */
    void loadFromDB2Redis(String userUid);

    /**
     * 根据用户id获取收藏过的记录
     * 可能为null
     * @param userUid userUid
     * @return 收藏记录
     */
    List<FavorRecordEntity> getByUserUid(String userUid);

    /**
     * 根据用户id分享id拿到点赞记录
     * 可能为null
     * @param userUid 用户id
     * @param shareId 分享id
     * @return
     */
    FavorRecordEntity getByUserUidShareId(String userUid,String shareId);

    /**
     * 用户是否收藏分享
     * @param userUid 用户uid
     * @param shareId 分享id
     * @return true/false
     */
    Boolean isUserFavorShare(String userUid, String shareId);
}

